Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: move apk upstream logic to apk metadata #1619

Merged
merged 3 commits into from
Feb 24, 2023

Conversation

westonsteimel
Copy link
Contributor

Export the logic for parsing upstream APK package names so it can be accessed from apk metadata objects directly.

This also tightens the upstream regex pattern as several edge cases were being missed.

Export the logic for parsing upstream APK package names
so it can be accessed from apk metadata objects directly.

This also tightens the upstream regex pattern as several
edge cases were being missed.

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>
@github-actions
Copy link

github-actions bot commented Feb 24, 2023

Benchmark Test Results

Benchmark results from the latest changes vs base branch
goos: linux
goarch: amd64
pkg: github.com/anchore/syft/test/integration
cpu: Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
                                                          │ ./.tmp/benchmark-ef9f135.txt │
                                                          │            sec/op            │
ImagePackageCatalogers/alpmdb-cataloger-2                                   12.00m ± 18%
ImagePackageCatalogers/ruby-gemspec-cataloger-2                             897.1µ ±  2%
ImagePackageCatalogers/python-package-cataloger-2                           3.075m ±  2%
ImagePackageCatalogers/php-composer-installed-cataloger-2                   695.2µ ±  1%
ImagePackageCatalogers/javascript-package-cataloger-2                       369.9µ ±  1%
ImagePackageCatalogers/dpkgdb-cataloger-2                                   513.5µ ±  1%
ImagePackageCatalogers/rpm-db-cataloger-2                                   494.3µ ±  3%
ImagePackageCatalogers/java-cataloger-2                                     11.23m ±  2%
ImagePackageCatalogers/graalvm-native-image-cataloger-2                     8.712µ ±  2%
ImagePackageCatalogers/apkdb-cataloger-2                                    519.5µ ±  2%
ImagePackageCatalogers/go-module-binary-cataloger-2                         19.34µ ±  4%
ImagePackageCatalogers/dotnet-deps-cataloger-2                              985.2µ ±  1%
ImagePackageCatalogers/portage-cataloger-2                                  321.4µ ±  2%
ImagePackageCatalogers/sbom-cataloger-2                                     107.3µ ±  1%
ImagePackageCatalogers/binary-cataloger-2                                   145.4µ ±  1%
geomean                                                                     465.7µ

                                                          │ ./.tmp/benchmark-ef9f135.txt │
                                                          │             B/op             │
ImagePackageCatalogers/alpmdb-cataloger-2                                   5.060Mi ± 0%
ImagePackageCatalogers/ruby-gemspec-cataloger-2                             141.8Ki ± 0%
ImagePackageCatalogers/python-package-cataloger-2                           946.3Ki ± 0%
ImagePackageCatalogers/php-composer-installed-cataloger-2                   155.9Ki ± 0%
ImagePackageCatalogers/javascript-package-cataloger-2                       95.61Ki ± 0%
ImagePackageCatalogers/dpkgdb-cataloger-2                                   144.7Ki ± 0%
ImagePackageCatalogers/rpm-db-cataloger-2                                   170.1Ki ± 0%
ImagePackageCatalogers/java-cataloger-2                                     2.721Mi ± 0%
ImagePackageCatalogers/graalvm-native-image-cataloger-2                     1.523Ki ± 0%
ImagePackageCatalogers/apkdb-cataloger-2                                    123.0Ki ± 0%
ImagePackageCatalogers/go-module-binary-cataloger-2                         3.102Ki ± 0%
ImagePackageCatalogers/dotnet-deps-cataloger-2                              314.7Ki ± 0%
ImagePackageCatalogers/portage-cataloger-2                                  75.41Ki ± 0%
ImagePackageCatalogers/sbom-cataloger-2                                     13.03Ki ± 0%
ImagePackageCatalogers/binary-cataloger-2                                   21.16Ki ± 0%
geomean                                                                     106.9Ki

                                                          │ ./.tmp/benchmark-ef9f135.txt │
                                                          │          allocs/op           │
ImagePackageCatalogers/alpmdb-cataloger-2                                    86.71k ± 0%
ImagePackageCatalogers/ruby-gemspec-cataloger-2                              2.159k ± 0%
ImagePackageCatalogers/python-package-cataloger-2                            15.49k ± 0%
ImagePackageCatalogers/php-composer-installed-cataloger-2                    3.458k ± 0%
ImagePackageCatalogers/javascript-package-cataloger-2                        1.253k ± 0%
ImagePackageCatalogers/dpkgdb-cataloger-2                                    2.646k ± 0%
ImagePackageCatalogers/rpm-db-cataloger-2                                    3.759k ± 0%
ImagePackageCatalogers/java-cataloger-2                                      38.26k ± 0%
ImagePackageCatalogers/graalvm-native-image-cataloger-2                       40.00 ± 0%
ImagePackageCatalogers/apkdb-cataloger-2                                     3.252k ± 0%
ImagePackageCatalogers/go-module-binary-cataloger-2                           101.0 ± 0%
ImagePackageCatalogers/dotnet-deps-cataloger-2                               5.011k ± 0%
ImagePackageCatalogers/portage-cataloger-2                                   1.487k ± 0%
ImagePackageCatalogers/sbom-cataloger-2                                       392.0 ± 0%
ImagePackageCatalogers/binary-cataloger-2                                     649.0 ± 0%
geomean                                                                      2.180k

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>
@westonsteimel westonsteimel enabled auto-merge (squash) February 24, 2023 11:35
Signed-off-by: Weston Steimel <weston.steimel@anchore.com>
@westonsteimel westonsteimel merged commit 0c5f032 into main Feb 24, 2023
@westonsteimel westonsteimel deleted the apk-upstream-refactor branch February 24, 2023 15:59
@kzantow kzantow added enhancement New feature or request changelog-ignore Don't include this issue in the release changelog and removed enhancement New feature or request labels Mar 2, 2023
GijsCalis pushed a commit to GijsCalis/syft that referenced this pull request Feb 19, 2024
* refactor: move apk upstream logic to apk metadata

Export the logic for parsing upstream APK package names
so it can be accessed from apk metadata objects directly.

This also tightens the upstream regex pattern as several
edge cases were being missed.

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* fix: ensure correct handling for apk packages beginning with digits

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* fix: upstream generation for ruby

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

---------

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog-ignore Don't include this issue in the release changelog
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants